#include "object.hpp"

void Object::face_vertices(int face_idx, Eigen::Matrix3f & res_vertices) const
{
    res_vertices = vertices(faces.row(face_idx), Eigen::all).transpose();
}

void Object::face_tangent(int face_idx, Eigen::Vector3f & normal, Eigen::Vector3f & up) const
{
    Eigen::Matrix3f Ps;
    face_vertices(face_idx, Ps);
    Eigen::Vector3f E1 = Ps.col(1) - Ps.col(0);
    Eigen::Vector3f E2 = Ps.col(2) - Ps.col(0);

    normal = E1.cross(E2).normalized();
    up = E1.normalized();
}
